package com.OrderingServer.service.impl;


import cn.hutool.jwt.JWTUtil;
import com.OrderingServer.mapper.UserMapper;
import com.OrderingServer.pojo.User;
import com.OrderingServer.service.UserService;
import com.OrderingServer.utils.TokenUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 用户服务实现类
 * 实现了用户相关的业务逻辑
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    // 注入UserMapper
    @Autowired
    private UserMapper userMapper;

    /**
     * 根据用户名查询用户
     */
    @Override
    public User findByUsername(String username) {
        return userMapper.findByUsername(username);
    }

    /**
     * 用户登录业务逻辑
     */
    @Override
    public User login(String username, String password) {
        // 1. 根据用户名查询用户
        User user = userMapper.findByUsername(username);

        // 2. 验证用户是否存在
        if (user == null) {
            return null; // 用户不存在
        }

        // 3. 对输入的密码进行MD5加密，与数据库中存储的加密密码比较
        if (password.equals(user.getPassword())) {
            // 密码正确，返回用户对象
            return user;
        } else {
            // 密码错误
            return null;
        }
    }

    /**
     * 用户注册业务逻辑
     */
    @Override
    public boolean register(User user) {
        // 1. 检查用户名是否已存在
        User existingUser = userMapper.findByUsername(user.getUsername());
        if (existingUser != null) {
            return false; // 用户名已存在，注册失败
        }

        // 3. 插入新用户
        int rows = userMapper.insert(user);
        // 返回插入结果，1表示成功
        return rows == 1;
    }
}
    